package net.comfycastle.musicplayer;

import android.content.Context;
import android.database.Cursor;
import android.support.v4.widget.CursorAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * 이 어플리케이션에서 사용되는 모든 adapter의 부모
 * 컨텍스트, 레이아웃 리소스 아이디, 전개자 등을 관리하며
 * CursorAdapter 의 newView를 구현해놓았다.
 * @author ricale
 *
 */
abstract class MusicCursorAdapter extends CursorAdapter {
	///////////
	//////////
	/////////   variable
	
	/** adapter를 생성한 context */
	protected Context mContext;
	/** 항목뷰 레이아웃 리소스 아이디 */
	protected int mLayout;
	/** 항목뷰 전개를 위한 inflater 객체 */
	protected LayoutInflater mInflater;
	
	///////////
	//////////
	/////////   constructor
	
	/**
	 * 생성자
	 * @param context adapter를 생성한 context
	 * @param layout  항목뷰 레이아웃 리소스 아이디
	 * @param cursor  데이터 cursor
	 * @param flags
	 */
	public MusicCursorAdapter(Context context, int layout, Cursor cursor, int flags) {
		super(context, cursor, flags);
		
		mContext  = context;
		mLayout   = layout;
		mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	} // end MusicCursorAdapter
	
	///////////
	//////////
	/////////   callback method
	
	/**
	 * 리스트뷰의 항목뷰로 쓰일 뷰를 생성(전개)한다.
	 */
	@Override
	public View newView(Context context, Cursor cursor, ViewGroup parent) {
		View v = mInflater.inflate(mLayout, parent, false);
		return v;
	} // end newView
} // end MusicCursorAdapter